/*
 * @lc app=leetcode.cn id=343 lang=golang
 *
 * [343] 整数拆分
 */

// @lc code=start
func integerBreak(n int) int {
	// res[i] 表示 i 分解后的最大乘积
	if n<=1{
		return 0
	}
	res := make([]int,n+1)
	res[0] = 0
	res[1] = 0
	// res[2] = 1
	for i:=2;i<=n;i++{
		for j:=1;j<i;j++{
			res[i] = max(res[i],max(j*(i-j),res[i-j]*j))
		}
	}
	// fmt.Println(res)
	return res[n]
}

func max(i,j int)int{
	if i>j{
		return i 
	}
	return j
}
// @lc code=end

